﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Yuans.BinaryConfig.BlobIO
{
    public class BlobValueIOManager
    {
        public byte[] BlobValue { set; get; }

        private BlobValueIO blobValueIO;
        
        public void ImportFile(string fileName)
        {
            string extName = Path.GetExtension(fileName);

           if(extName == ".cfg")
           {
               blobValueIO = new TAS57xxCfgBlobValueIO(fileName);
           }
           else if(extName == ".cuv")
           {
               blobValueIO = new MedeliVelCurveCfgBlobValueIO(fileName);
           }
           else if (extName == ".txt")
           {
               blobValueIO = new PlainHexTextBlobValueIO(fileName);     
           }
           else
           {
               blobValueIO = new RawBinBlobValueIO(fileName);    
           }
           BlobValue = blobValueIO.BlobValue;
        }
        public void ExportFile(string fileName)
        {
            blobValueIO = new RawBinBlobValueIO(fileName);
            blobValueIO.BlobValue = this.BlobValue;
            blobValueIO.ExportFile(fileName);
        }
    }
}
